package com.daikun.common.iface;

import com.daikun.common.enums.BaseResultEnum;

/**
 * 国际化文案
 * 当全局异常拦截器拦截到异常时，会找到当前接口的实现类 ( 实现类必须被 spring 管理 )，调用对应的方法，获取国际化文案信息
 * 此接口在一个服务内应该只存在一个实现，当有多个实现时，可能结果会不符合预期
 * tips -> 新网关中，所有经过网关且被拦截解析的接口，都会在请求 header 中添加 countryType 标识字段
 * @author earl created 2025-07-07
 * @version init 0.0.1
 */
public interface I18nMessageIface {

    /**
     * 获取对应国家的错误描述
     * @param code 自定义实现的 {@link BaseResultIface} 接口中获取的 getCode
     *  tips: 此方法传入的 code 参数，可能是服务自定义的，也可能是工具类内部自己抛出
     *        若是当前工具内自己抛出的，则 code 码对应的枚举为 {@link BaseResultEnum}
     *        若需要进行国际化操作，则需要对 RestResultEnum 中的 code 码进行单独处理
     * @return 对应国家的异常文案
     */
    String getI18nMsg(int code);

}
